Generally, client-based computing applications can include user-interface (UI) components that are user-interactive. Some of the interactive features can include, editable text, buttons, menus, and controls. Commonly deployed UI implementations are single-threaded and are event driven. With current implementations, a message pump can be used to manage input from one or more cooperating UI elements and can operate to dispatch events to application code to execute one or more desired operations and features (e.g., printing). The events are typically low-level keyboard and mouse interactions with the UI element. Generally in such environments, it is typical that application process of a UI event can trigger application logic that runs on the same processing thread as is processing the UI interactions. In practice, the processing of input events (e.g., interactions with a user interface) can take a perceptible amount of time, making the user interface non-responsive.
For example, a computing application may contain a user interface providing users with the ability to request various operations/features such as printing a file, saving a file, opening a file, and/or importing a file. In a contemplated example, a user can interact with the user interface to request the printing of a particular page. Generally, the processing thread that processes the printing request is the same as the one managing the user interactions—i.e., the UI thread. With current single thread or non-isolated UI thread based applications, there can exist a noticeable latency in the availability of UI functions and operations since the same thread controlling the UI is being used to process the requested application feature/operation. In this context, the application typically operates to prevent the UI from accepting additional inputs until the requested operation/feature (e.g., printing) is completely processed. Such latency can dramatically impact the usability of a given computing application and detract from a user's positive experience of a given computing application.
Form the foregoing it is appreciated that there exists a need for systems and methods to ameliorate the shortcomings of existing practices.